import cache
from dao.commonDao import ChatMsg
from protoc import IMProto_pb2
from utils.transferUtil import TransferUtil


def process(head,msgBody):
    msg = IMProto_pb2.ChatMsg()
    msg.ParseFromString(msgBody)

    chatMsg = ChatMsg();
    chatMsg.msgId = msg.msgId
    chatMsg.status = 0
    chatMsg.senderId = msg.senderId
    chatMsg.time = msg.time
    chatMsg.extra = msg.extra
    chatMsg.msgBody = msg.msgBody
    chatMsg.senderName = msg.senderName
    chatMsg.msgType = msg.msgType
    chatMsg.seqId = msg.seqId
    chatMsg.sessionId = msg.sessionId
    chatMsg.sessionType = msg.sessionType

    cache.Cache.dao.saveMsg(chatMsg)

    msg_ = TransferUtil.obj2DictWithout_(chatMsg)
    msg_.pop('metadata')
    cache.Cache.app.msgObject.noticeNewMsg(msg_)